package com.ajhlp.spring_modules.db.multiSource;

import java.util.List;

import com.ajhlp.spring_modules.db.multiSource.metaModel.DBSource_BasicInfo;
import com.ajhlp.spring_modules.db.multiSource.metaModel.DBSource_Query;
import com.ajhlp.spring_modules.db.multiSource.metaModel.DBSource_DataField;
import com.ajhlp.spring_modules.db.multiSource.metaModel.DBSource_DataSet;
import com.ajhlp.spring_modules.db.multiSource.metaModel.DBSource_Type;
/**
 * 数据源相关操作
 * @author ajhlp
 *
 */
public interface IDBSourceMetaService {

	/**
	 * 保存数据源基本信息
	 * @param basicInfo 基本信息
	 * @throws DBSourceMetaSaveFailureException
	 */
	public void saveBasicInfo(DBSource_BasicInfo basicInfo) throws DBSourceMetaSaveFailureException;
	
	/**
	 * 保存数据表(集)信息
	 * @param dataSet 数据表(集)信息
	 * @throws DBSourceMetaSaveFailureException
	 */
	public void saveDataSetInfo(DBSource_DataSet dataSet) throws DBSourceMetaSaveFailureException;
	/**
	 * 保存数据字段信息
	 * @param dataField 数据字段信息
	 * @throws DBSourceMetaSaveFailureException
	 */
	public void saveDataFieldInfo(DBSource_DataField dataField) throws DBSourceMetaSaveFailureException;
	/**
	 * 保存一组数据字段信息
	 * @param fields 数据字段信息组
	 * @throws DBSourceMetaSaveFailureException
	 */
	public void saveDataFieldInfo(List<DBSource_DataField> fields) throws DBSourceMetaSaveFailureException;
	/**
	 * 查询数据源基本信息
	 * @param conditon 查询条件（名称、创建时间）
	 * @return
	 * @throws DBSourceMetaQueryFailureException
	 */
	public List<DBSource_BasicInfo> queryBasicInfo(DBSource_Query conditon) throws DBSourceMetaQueryFailureException;
	
	/**
	 * 查询数据表（集）信息
	 * @param conditon 查询条件（名称、创建时间、所属数据源ID）
	 * @return
	 * @throws DBSourceMetaQueryFailureException
	 */
	public List<DBSource_DataSet> queryDataSet(DBSource_Query conditon) throws DBSourceMetaQueryFailureException;
	/**
	 * 查询数据字段信息
	 * @param conditon 查询条件（名称、创建时间、所属数据表集ID）
	 * @return
	 * @throws DBSourceMetaQueryFailureException
	 */
	public List<DBSource_DataField> queryDataField(DBSource_Query conditon) throws DBSourceMetaQueryFailureException;
	/**
	 * 查询数据源类型，如果id<=0返回全部类型列表
	 * @param id 类型ID
	 * @return
	 * @throws DBSourceMetaQueryFailureException
	 */
	public List<DBSource_Type> queryDBSourceType(DBSource_Query condition) throws DBSourceMetaQueryFailureException;
}
